A backup system may track modifications or write requests to data since a prior backup so that the system may backup modified data. For example, a backup system may make periodic incremental backups of modified data. Backing up only modified data may use less storage space than a full backup of all data and may require less network traffic and disk Input/Output (I/O) processing.
Data modifications may be tracked to determine what to backup. Modified data which has been modified in memory but not yet written to disk is typically referred to as “dirty” data. Once modified data is written to disk it is typically referred to as “clean” data.
Tracked data modifications or write requests may either be stored in memory or written to disk. If tracked data modifications are written to disk, they may require a write request for every write request to disk. This overhead and additional I/o may be unacceptable for performance. If tracked data modifications are stored in memory, they may be written to disk at system shutdown to avoid loss of the tracked data modifications. If a system crashes, shuts down improperly, or experiences interruptions, the tracked data modifications may be lost. A user may then be faced with two difficult options. They may perform a full backup of all data to capture all possible changes, which may require more storage and take longer than an incremental backup. Alternatively, they may perform a reconciliation operation, which may identify the modifications to data since the last backup (i.e., the lost tracked modifications). The reconciliation operation may identify modifications by comparing portions of used storage, such as used blocks of disk, to portions of the last backup. After completion of the reconciliation operation, an incremental backup may be performed. However, the reconciliation operation may take as long or longer and may require as much or more I/O processing than a full backup.
In view of the foregoing, it may be understood that there may be significant problems and shortcomings associated with current system recovery technologies.